home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 4
/
Aminet 4 - November 1994.iso
/
aminet
/
dev
/
gui
/
muibuilderv11.lha
/
muibuilder
/
mb
/
e
/
characters
/
Characters.e
< prev
next >
Wrap
Text File
|
1994-03-07
|
8KB
|
195 lines
/******************************************************************************
Here is an example of an "environnement file". All you have to do, si to
fill it with :
- use MUIBuilder+GenCodeE to generate the create_app() function
- add the code for your application !!!
******************************************************************************/
OPT OSVERSION=37
/* Module definitions */
MODULE 'muimaster', 'libraries/mui'
MODULE 'utility/tagitem', 'utility/hooks'
MODULE 'intuition/classes', 'intuition/classusr'
/* Error handling */
ENUM NO_LIBRARY, MUI_APPLICATION_FAILURE
RAISE NO_LIBRARY IF OpenLibrary()=NIL,
MUI_APPLICATION_FAILURE IF Mui_NewObjectA()=NIL
/* Constant definitions */
CONST MUI_TRUE = 1
/* Global variables */
/*MUIB*/ DEF app, wi_Characters, stR_name, cy_sex, ra_Race, ra_Class, ch_cloak
/*MUIB*/ DEF ch_shield, ch_gloves, ch_helmet, sl_experience, sl_strength
/*MUIB*/ DEF sl_dexterity, sl_condition, sl_intelligence
/*MUIB*/ DEF stR_CY_sex : PTR TO LONG
/*MUIB*/ DEF stR_GR_Register : PTR TO LONG
/*MUIB*/ DEF stR_RA_Race : PTR TO LONG
/*MUIB*/ DEF stR_RA_Class : PTR TO LONG
/* Main procedure */
PROC main() HANDLE
DEF signal, result_DoMethod, running = TRUE
muimasterbase := OpenLibrary('muimaster.library', 0)
create_app()
/* Notify : close gadget => end of application */
doMethod( wi_Characters, [ MUIM_Notify, MUIA_Window_CloseRequest, MUI_TRUE, app, 2, MUIM_Application_ReturnID, MUIV_Application_ReturnID_Quit ] )
/* Open the window */
set( wi_Characters, MUIA_Window_Open, MUI_TRUE )
WHILE running
result_DoMethod := doMethod( app, [ MUIM_Application_Input, {signal} ] )
SELECT result_DoMethod
CASE MUIV_Application_ReturnID_Quit
running := FALSE
ENDSELECT
IF (running AND signal) THEN Wait( signal )
ENDWHILE
Mui_DisposeObject( app )
CloseLibrary( muimasterbase )
EXCEPT
SELECT exception
CASE NO_LIBRARY
CASE MUI_APPLICATION_FAILURE
ENDSELECT
ENDPROC
/* Procedure generated by GenCodeE which creates your application */
PROC create_app()
stR_CY_sex := [ 'female', 'male', NIL ]
stR_GR_Register := [ 'Race', 'Class', 'Armor', 'Level', NIL ]
stR_RA_Race := [ 'Human', 'Elf', 'Dwarf', 'Hobbit', 'Gnome', NIL ]
stR_RA_Class := [ 'Warrior', 'Rogue', 'Bard', 'Monk', 'Magician', 'Archmage', NIL ]
app := ApplicationObject,
MUIA_Application_Author, 'Stefan Stuntz',
MUIA_Application_Base, 'CHARACTER',
MUIA_Application_Title, 'Characters',
MUIA_Application_Version, '$VER: Characters 1.1 (xx.xx.xx)',
MUIA_Application_Copyright, 'Stefan Stuntz',
MUIA_Application_Description, 'Just an example !!',
MUIA_HelpFile, 'character.guide',
SubWindow, wi_Characters := WindowObject,
MUIA_Window_Title, 'Characters',
MUIA_HelpNode, 'WI_Characters',
MUIA_Window_ID, MAKE_ID( "0", "W", "I", "N" ),
WindowContents, GroupObject,
Child, GroupObject,
MUIA_HelpNode, 'GR_Global',
MUIA_Group_Columns, 2,
Child, Label( 'Name' ),
Child, stR_name := StringObject,
StringFrame,
MUIA_HelpNode, 'STR_name',
MUIA_String_MaxLen, 80,
MUIA_String_Format, 0,
End,
Child, Label( 'Sex' ),
Child, cy_sex := CycleObject,
MUIA_HelpNode, 'CY_sex',
MUIA_Cycle_Entries, stR_CY_sex,
End,
End,
Child, RegisterGroup( stR_GR_Register ),
Child, ra_Race := RadioObject,
GroupFrameT( 'Race' ),
MUIA_Radio_Entries, stR_RA_Race,
End,
Child, ra_Class := RadioObject,
GroupFrameT( 'Class' ),
MUIA_Radio_Entries, stR_RA_Class,
End,
Child, GroupObject,
GroupFrameT( 'Armor' ),
MUIA_Group_Columns, 2,
Child, Label( 'Cloak' ),
Child, ch_cloak := CheckMark( FALSE ),
Child, Label( 'Shield' ),
Child, ch_shield := CheckMark( FALSE ),
Child, Label( 'Gloves' ),
Child, ch_gloves := CheckMark( FALSE ),
Child, Label( 'Helmet' ),
Child, ch_helmet := CheckMark( FALSE ),
End,
Child, GroupObject,
GroupFrameT( 'Level' ),
MUIA_Group_Columns, 2,
Child, Label( 'Experience' ),
Child, sl_experience := SliderObject,
MUIA_Slider_Min, 0,
MUIA_Slider_Max, 100,
MUIA_Slider_Quiet, FALSE,
MUIA_Slider_Level, 3,
MUIA_Slider_Reverse, FALSE,
End,
Child, Label( 'Strength' ),
Child, sl_strength := SliderObject,
MUIA_Slider_Min, 0,
MUIA_Slider_Max, 100,
MUIA_Slider_Quiet, FALSE,
MUIA_Slider_Level, 10,
MUIA_Slider_Reverse, FALSE,
End,
Child, Label( 'Dexterity' ),
Child, sl_dexterity := SliderObject,
MUIA_Slider_Min, 0,
MUIA_Slider_Max, 100,
MUIA_Slider_Quiet, FALSE,
MUIA_Slider_Level, 24,
MUIA_Slider_Reverse, FALSE,
End,
Child, Label( 'Condition' ),
Child, sl_condition := SliderObject,
MUIA_Slider_Min, 0,
MUIA_Slider_Max, 100,
MUIA_Slider_Quiet, FALSE,
MUIA_Slider_Level, 39,
MUIA_Slider_Reverse, FALSE,
End,
Child, Label( 'Intelligence' ),
Child, sl_intelligence := SliderObject,
MUIA_Slider_Min, 0,
MUIA_Slider_Max, 100,
MUIA_Slider_Quiet, FALSE,
MUIA_Slider_Level, 74,
MUIA_Slider_Reverse, FALSE,
End,
End,
End,
End,
End,
End
ENDPROC
/* DoMethod() function */
PROC doMethod( obj:PTR TO object, msg:PTR TO msg )
DEF h:PTR TO hook, o:PTR TO object, dispatcher
IF obj
o := obj-SIZEOF object /* instance data is to negative offset */
h := o.class
dispatcher := h.entry /* get dispatcher from hook in iclass */
MOVEA.L h,A0
MOVEA.L msg,A1
MOVEA.L obj,A2 /* probably should use CallHookPkt, but the */
MOVEA.L dispatcher,A3 /* original code (DoMethodA()) doesn't. */
JSR (A3) /* call classDispatcher() */
MOVE.L D0,o
RETURN o
ENDIF
ENDPROC NIL